package ar.uade.distribuidas.tpo.dba.dao;

import java.util.List;

import ar.uade.distribuidas.tpo.dba.dominio.Rodamiento;
import ar.uade.distribuidas.tpo.dba.hbt.HibernateDAO;


public class RodamientoDAO extends HibernateDAO {
	
	private static RodamientoDAO instance;
	
	private RodamientoDAO() {
		super();
	}
	
	public static RodamientoDAO getInstance() {
		if (instance == null){
			instance = new RodamientoDAO();
		}
		return instance;
	}
	
	public Rodamiento getRodamiento(long nroSerie, String sufijo, String marca, String origen) {
		
		@SuppressWarnings("unchecked")
		List<Rodamiento> list = (List<Rodamiento>) this.getSession().createQuery("from Rodamiento rod where rod.nroSerie = :nroSerie and rod.sufijo = :sufijo and rod.marca = :marca and rod.pais = :pais")
				.setParameter("nroSerie", nroSerie)
				.setParameter("sufijo", sufijo)
				.setParameter("marca", marca)
				.setParameter("pais", origen)
				.list();
		Rodamiento r = list.isEmpty() ? null : list.get(0);
		
		return r;
	}
	
	public void deleteRodamientoList(List<Rodamiento> rodamientos){
		
		for(Rodamiento rod : rodamientos){
			this.delete(rod);
		}
	}
}
